级联

1> concat()函数

沿轴执行级联操作

语法:

pd.concat(objs, axis = 0, join = 'outer', join_axes = None, ignore_index = False)

参数 说明
objs Series、DataFrame或 Panel 对象的序列或映射
axis {0,1,...},默认是 0, 是连接的轴
join {'inner','outer'},默认为 inner
join_axes Index 对象列表
ignore_index 布尔值,默认为 False,如果指定为 True,则不要使用连接轴上的索引值
first = pd.DataFrame({
    'name':['meng','zhi','wang'],
    'number':['1001','1002','1003'],
    'score':[95, 98, 91],
},index = [1, 2, 3])
second = pd.DataFrame({
    'name':['li','zhang','ming'],
    'number':['1001','1002','1005'],
    'score':[93, 100, 97],
},index = [1, 2, 3])
rs = pd.concat([first,second])
print(f'对象连接:{rs}')

# 输出结果:
#  对象连接:    name number  score
#  1   meng   1001     95
#  2    zhi   1002     98
#  3   wang   1003     91
#  1     li   1001     93
#  2  zhang   1002    100
#  3   ming   1005     97

# 通过键参数把特定的键与 DataFrame 关联
rs1 = pd.concat([first, second],keys = ['x','y'])
print(f'使用键参数关联碎片:\n{rs1}')

# 输出结果:
#  使用键参数关联碎片:
#        name number  score
#  x 1   meng   1001     95
#    2    zhi   1002     98
#    3   wang   1003     91
#  y 1     li   1001     93
#    2  zhang   1002    100
#    3   ming   1005     97

# 生成对象必须遵循自己的索引
rs2 = pd.concat([first, second],keys = ['x','y'],ignore_index = True)
print(f'使生成对象遵循自己的索引:\n{rs2}')

# 输出结果:
#  使生成对象遵循自己的索引:
#      name number  score
#  0   meng   1001     95
#  1    zhi   1002     98
#  2   wang   1003     91
#  3     li   1001     93
#  4  zhang   1002    100
#  5   ming   1005     97

# 沿轴 1
rs3 = pd.concat([first,second],axis = 1)
print(f'沿 axis 设置值添加对象:\n{rs3}')

# 输出结果:
#  沿 axis 设置值添加对象:
#     name number  score   name number  score
#  1  meng   1001     95     li   1001     93
#  2   zhi   1002     98  zhang   1002    100
#  3  wang   1003     91   ming   1005     97

2> append()

append()沿着 axis = 0 连接

first = pd.DataFrame({
    'name':['meng','zhi','wang'],
    'number':['1001','1002','1003'],
    'score':[95, 98, 91],
},index = [1, 2, 3])
second = pd.DataFrame({
    'name':['li','zhang','ming'],
    'number':['1001','1002','1005'],
    'score':[93, 100, 97],
},index = [1, 2, 3])
rs1 = first.append(second)
print(f'append 函数带一个对象:\n{rs1}')

# 输出结果:
#  append 函数带一个对象:
#      name number  score
#  1   meng   1001     95
#  2    zhi   1002     98
#  3   wang   1003     91
#  1     li   1001     93
#  2  zhang   1002    100
#  3   ming   1005     97

rs2 = first.append([second, first])
print(f'append 函数带多个对象:\n{rs2}')

# 输出结果:
#  append 函数带多个对象:
#      name number  score
#  1   meng   1001     95
#  2    zhi   1002     98
#  3   wang   1003     91
#  1     li   1001     93
#  2  zhang   1002    100
#  3   ming   1005     97
#  1   meng   1001     95
#  2    zhi   1002     98
#  3   wang   1003     91